<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
<!-- whatsnew54.qdoc -->
  <title>What's New in Qt 5.4 | Qt 5.14</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="index.html">Qt 5.14</a></td><td >What's New in Qt 5.4</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right">Qt 5.14.2 Reference Documentation</td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#new-modules">New Modules</a></li>
<li class="level1"><a href="#new-supported-platforms">New Supported Platforms</a></li>
<li class="level1"><a href="#new-features-in-qt-5-4">New Features in Qt 5.4</a></li>
<li class="level2"><a href="#qt-gui-module">Qt GUI Module</a></li>
<li class="level2"><a href="#qt-core-module">Qt Core Module</a></li>
<li class="level2"><a href="#qt-widgets-module">Qt Widgets Module</a></li>
<li class="level2"><a href="#qt-quick-module">Qt Quick Module</a></li>
<li class="level2"><a href="#qt-quick-controls-module">Qt Quick Controls Module</a></li>
<li class="level2"><a href="#qt-bluetooth-module">Qt Bluetooth Module</a></li>
<li class="level2"><a href="#qpa-plugins">QPA Plugins</a></li>
<li class="level2"><a href="#qt-webkit-module">Qt WebKit Module</a></li>
<li class="level2"><a href="#qt-windows-extras-module">Qt Windows Extras Module</a></li>
<li class="level2"><a href="#qt-sensors-module">Qt Sensors Module</a></li>
<li class="level2"><a href="#qt-sql-module">Qt SQL Module</a></li>
<li class="level1"><a href="#deprecated-features">Deprecated Features</a></li>
<li class="level2"><a href="#qt-opengl-module">Qt OpenGL Module</a></li>
<li class="level1"><a href="#list-of-api-changes">List of API Changes</a></li>
<li class="level1"><a href="#additions-to-other-qt-5-releases">Additions to Other Qt 5 Releases</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">What's New in Qt 5.4</h1>
<span class="subtitle"></span>
<!-- $$$whatsnew54.html-description -->
<div class="descr"> <a name="details"></a>
<p>The focus for Qt 5.4 is mainly about improving the stability, performance, and first-time user experience of the product.</p>
<a name="new-modules"></a>
<h2 id="new-modules">New Modules</h2>
<ul>
<li><a href="../qtwebchannel/qtwebchannel-index.html">Qt WebChannel</a></li>
<li><a href="../qtwebengine/qtwebengine-index.html">Qt WebEngine</a></li>
<li><a href="../qtwebengine/qtwebenginewidgets-index.html">Qt WebEngine Widgets</a></li>
<li><a href="../qtplatformheaders/qtplatformheaders-index.html">Qt Platform Headers</a></li>
</ul>
<a name="new-supported-platforms"></a>
<h2 id="new-supported-platforms">New Supported Platforms</h2>
<ul>
<li>Qt for WinRT now a supported platform</li>
<li>Windows Phone 8.1 minimum supported version</li>
</ul>
<a name="new-features-in-qt-5-4"></a>
<h2 id="new-features-in-qt-5-4">New Features in Qt 5.4</h2>
<a name="qt-gui-module"></a>
<h3 id="qt-gui-module">Qt GUI Module</h3>
<ul>
<li><a href="../qtgui/qopenglcontext.html">QOpenGLContext</a> is now able to adopt existing native contexts (EGL, GLX, and so on). This allows interoperability among Qt and other frameworks, such as game engines.</li>
<li>OpenGL ES 3.0/3.1 support is improved. The header file for the highest usable ES version (gl31.h, gl3.h or gl2.h) is now automatically included by Qt's headers in -opengl es2 builds. Vertex array objects, framebuffer blits and multisampling are now supported via the standard GLES3 functions, where applicable.</li>
<li>Selecting the dynamic OpenGL implementation on application startup is now available on Windows when configured with <a href="../qtcore/qromancalendar.html">_</a>-opengl dynamic_. This allows using either opengl32.dll or ANGLE's OpenGL ES 2.0 implementation in Qt and applications without the need for two separate builds of the binaries.</li>
<li><a href="../qtwidgets/qopenglwidget.html">QOpenGLWidget</a>: The modern replacement for QGLWidget and the counterpart of <a href="../qtquick/qquickwidget.html">QQuickWidget</a>.</li>
<li><a href="../qtgui/qopenglwindow.html">QOpenGLWindow</a>: Convenience class for performing OpenGL drawing onto a <a href="../qtgui/qwindow.html">QWindow</a>.</li>
<li><a href="../qtgui/qrasterwindow.html">QRasterWindow</a>: Covenience class for performing software-based drawing via <a href="../qtgui/qpainter.html">QPainter</a> onto a <a href="../qtgui/qwindow.html">QWindow</a>.</li>
<li>Support for 10-bit per color channels images. These can be rendered to and from, though internally the raster engine will still use 8-bit per color channel. If used as the internal format of a <a href="../qtgui/qopenglframebufferobject.html">QOpenGLFramebufferObject</a>, the OpenGL paint engine is able to render in full precision if supported by the OpenGL driver.</li>
<li>WinRT: Added support for native file dialogs.</li>
</ul>
<a name="qt-core-module"></a>
<h3 id="qt-core-module">Qt Core Module</h3>
<ul>
<li>WinRT: Added support for native settings container (local and roaming).</li>
<li><a href="../qtcore/qstorageinfo.html">QStorageInfo</a>: Class for providing information about currently mounted storage volumes and drives.</li>
<li><a href="../qtcore/qbytearraylist.html">QByteArrayList</a>: Convenience class adding similar extra methods on top of <a href="../qtcore/qlist.html">QList</a>&lt;<a href="../qtcore/qbytearray.html">QByteArray</a>&gt; as <a href="../qtcore/qstringlist.html">QStringList</a> does to <a href="../qtcore/qlist.html">QList</a>&lt;<a href="../qtcore/qstring.html">QString</a>&gt;.</li>
<li><a href="../qtgui/qtabletevent.html">QTabletEvent</a>: several improvements to the input information: added information about the stylus buttons being pressed, the rotation and tangential pressures now have consistent ranges across platforms, the proximity events now include the type of stylus or other tool in use, and manual tests and debug output are improved for better verification of functionality.</li>
</ul>
<a name="qt-widgets-module"></a>
<h3 id="qt-widgets-module">Qt Widgets Module</h3>
<ul>
<li>Improved scaling of widget styles based on DPI.</li>
</ul>
<a name="qt-quick-module"></a>
<h3 id="qt-quick-module">Qt Quick Module</h3>
<ul>
<li><a href="../qtquick/qquickrendercontrol.html">QQuickRenderControl</a> is made public. This API allows efficient rendering of Qt Quick 2 scenes into framebuffer objects. The contents can then be used in arbitrary ways in Qt-based or 3rd party OpenGL renderers.</li>
<li>Introduced overlay and <i>pull back</i> headers and footers for <a href="../qtquick/qml-qtquick-listview.html">ListView</a>.</li>
<li>Added QQuickFontMetrics, which provides a subset of <a href="../qtgui/qfontmetricsf.html">QFontMetricsF</a>'s API.</li>
<li>Added QQuickTextMetrics, which provides a declarative API for the <a href="../qtgui/qfontmetricsf.html">QFontMetricsF</a> function arguments.</li>
<li><a href="../qtquick/qquickwidget.html">QQuickWidget</a> is now supported on Android.</li>
</ul>
<a name="qt-quick-controls-module"></a>
<h3 id="qt-quick-controls-module">Qt Quick Controls Module</h3>
<ul>
<li>Native <a href="../qtquickcontrols1/qtquickcontrols-platformnotes.html#android-style">Android style</a> support on Android v3.0 or later.</li>
</ul>
<a name="qt-bluetooth-module"></a>
<h3 id="qt-bluetooth-module">Qt Bluetooth Module</h3>
<ul>
<li>Support for Bluez5.</li>
<li>Tech Preview of Bluetooth Low Energy (client side support only, on Bluez 4 &amp; 5).</li>
</ul>
<a name="qpa-plugins"></a>
<h3 id="qpa-plugins">QPA Plugins</h3>
<ul>
<li>The Wayland platform plugin is now part of the release.</li>
<li>XCB will now support screen with a depth of 30 (10 bit per color channel).</li>
<li>More font settings are parsed by fontconfig and GTK platform backends.</li>
<li>More categorized logging is in use so that you can enable it in the standard ways (qtlogging.ini etc.) instead of needing to set obscure environment variables or uncomment #defines. The log also provides more complete information, especially about events.</li>
<li>Support for integer device pixel ratios larger than one has been added to the XCB plugin. The ratio is controlled by the environment variable <code>QT_DEVICE_PIXEL_RATIO</code>.</li>
</ul>
<a name="qt-webkit-module"></a>
<h3 id="qt-webkit-module">Qt WebKit Module</h3>
<ul>
<li>Added support for OpenGL accelerated 2D canvas to <a href="http://doc.qt.io/archives/qt-5.3/qtwebkitwidgets-index.html">Qt WebKit Widgets</a>.</li>
<li>The Qt <a href="../qtwebengine/qtwebengine-3rdparty-webkit.html">WebKit</a> module is considered <i>done</i>. It will be replaced by Qt WebEngine. This applies to the widgets as well as to the QML API of Qt <a href="../qtwebengine/qtwebengine-3rdparty-webkit.html">WebKit</a>.</li>
</ul>
<a name="qt-windows-extras-module"></a>
<h3 id="qt-windows-extras-module">Qt Windows Extras Module</h3>
<ul>
<li>Multiple thumbnail images when hovering over an application's taskbar.</li>
</ul>
<a name="qt-sensors-module"></a>
<h3 id="qt-sensors-module">Qt Sensors Module</h3>
<ul>
<li>Windows Phone: Added compass and ambient light sensors.</li>
</ul>
<a name="qt-sql-module"></a>
<h3 id="qt-sql-module">Qt SQL Module</h3>
<ul>
<li>Windows Phone: Added support for sqlite.</li>
</ul>
<a name="deprecated-features"></a>
<h2 id="deprecated-features">Deprecated Features</h2>
<a name="qt-opengl-module"></a>
<h3 id="qt-opengl-module">Qt OpenGL Module</h3>
<ul>
<li>The Qt OpenGL module (which contain classes that start with <i>QGL</i>) is now deprecated in favor of the <a href="../qtgui/qtgui-index.html">Qt GUI</a> module (which contains classes that start with <i>QOpenGL</i>). QGLWidget can now be replaced by <a href="../qtwidgets/qopenglwidget.html">QOpenGLWidget</a>.</li>
</ul>
<a name="list-of-api-changes"></a>
<h2 id="list-of-api-changes">List of API Changes</h2>
<p>The pages below contain a list of API changes in Qt 5.4:</p>
<ul>
<li><a href="newclasses54.html">New Classes and Functions in Qt 5.4</a></li>
<li><a href="obsoleteclasses.html">Obsolete Classes</a></li>
</ul>
<a name="additions-to-other-qt-5-releases"></a>
<h2 id="additions-to-other-qt-5-releases">Additions to Other Qt 5 Releases</h2>
<ul>
<li><a href="whatsnew53.html">What's New in Qt 5.3</a></li>
<li><a href="whatsnew52.html">What's New in Qt 5.2</a></li>
<li><a href="whatsnew51.html">What's New in Qt 5.1</a></li>
<li><a href="whatsnew50.html">What's New in Qt 5.0</a></li>
</ul>
</div>
<!-- @@@whatsnew54.html -->
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2020 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
